package com.rabbit.eap.framework.log.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @projectName eap
 * @packageName com.rabbit.eap.framework.log.domain
 * @className RequestInfo
 * @author： rabbit
 * @version： 1.0
 * @since： 2020/4/26 21:28
 * <p>Description: RequestInfo
 * HTTP请求信息对象
 * </p>

 */
@Data
@Accessors(chain = true)
public class RequestInfo implements Serializable {
    private static final long serialVersionUID = 225682228474686869L;
    /**
     * 请求路径
     *
     */
    private String path;

    /**
     * 请求ID
     */
    @JsonIgnore
    private String requestId;

    /**
     * 请求实际路径
     *
     */
    @JsonIgnore
    private String realPath;

    /**
     * 请求IP地址
     */
    private String ip;

    /**
     * 请求方式，GET/POST
     */
    private String requestMethod;

    /**
     * 请求内容类型
     */
    private String contentType;

    /**
     * 判断控制器方法参数中是否有RequestBody注解
     */
    private Boolean requestBody;

    /**
     * 请求参数对象
     */
    private Object param;

    /**
     * 请求时间字符串
     */
    private String time;

    /**
     * 请求token
     */
    private String token;

    /**
     * 请求token MD5值
     */
    @JsonIgnore
    private String tokenMd5;

    /**
     * 用户代理字符串
     */
    @JsonIgnore
    private String userAgent;

    /**
     * requiresRoles值
     */
    private String requiresRoles;

    /**
     * requiresPermissions值
     */
    private String requiresPermissions;

    /**
     * requiresAuthentication
     */
    private Boolean requiresAuthentication;

    /**
     * requiresUser
     */
    private Boolean requiresUser;

    /**
     * requiresGuest
     */
    private Boolean requiresGuest;
    /**
     * 执行时间
     */
    private Integer executeTime;

}
